/******************************************************************************
 * * mmi_modem_adaptor_ss.h - data structure for mmi-modem adpator, SS sub-module
 *
 * *(C) Copyright 2019 Asr International Ltd.
 * * All Rights Reserved
 * ******************************************************************************/
#ifndef MMI_MODEM_ADAPTOR_SS_H
#define MMI_MODEM_ADAPTOR_SS_H

#ifdef __cplusplus
extern "C" {
#endif

#include "mmi_modemadp_interface.h"
#include "mmi_modem_adaptor_main.h"

/******************************************************************************
 *
 *         Message structure of MMI -> Modem Adaptor
 *
 *******************************************************************************/

// msg stru: MMI_MODEMADP_CALL_FORWARD_SET_REQ
typedef struct {
    MMI_MODEM_SIM_ID              SimId;
    MMI_Modem_Call_Forward_Info_t *CallForwardInfo;
} MMI_Modemadp_Ss_Call_Forward_Set_Req_t;

// msg stru: MMI_MODEMADP_CALL_FORWARD_QUERY_REQ
typedef struct {
    MMI_MODEM_SIM_ID            SimId;
    MMI_MODEM_CALL_FORWARD_TYPE CallForwardType;
} MMI_Modemadp_Ss_Call_Forward_Query_Req_t;

// msg stru: MMI_MODEMADP_CALL_WAIT_SET_REQ
typedef struct {
    MMI_MODEM_SIM_ID SimId;
    BOOL             CallWaitOn;
} MMI_Modemadp_Ss_Call_Wait_Set_Req_t;

// msg stru: MMI_MODEMADP_CALL_WAIT_QUERY_REQ
typedef struct {
    MMI_MODEM_SIM_ID SimId;
} MMI_Modemadp_Ss_Call_Wait_Query_Req_t;

// msg stru: MMI_MODEMADP_SEND_USSD_REQ
// typedef struct
// {
// INT8             *pSendUssdReq;
// MMI_MODEM_SIM_ID SimId;
// } MMI_Modem_Send_Ussd_Req_t;

// msg stru: MMI_MODEMADP_USSD_CANCEL_REQ
typedef struct {
    MMI_MODEM_SIM_ID SimId;
} MMI_Modemadp_Ss_Ussd_Cancel_Req_t;

/******************************************************************************
 *
 *         Message structure of RIL -> Modem Adaptor
 *
 *******************************************************************************/
// msg stru: RIL_MODEMADP_SS_RSP_CUSD
typedef struct {
    RIL_SIM_ID SimId;
    char       *CusdString;
} RIL_Modemadp_Ss_Rsp_Cusd_t;

typedef struct {
    RIL_SIM_ID SimId;
    RIL_CallForwardInfo       *callforwardinfo;
    RIL_Errno result;
} RIL_Modemadp_Ss_Rsp_Query_Call_Forward_t;

typedef struct {
    RIL_SIM_ID SimId;
    RIL_Errno result;
} RIL_Modemadp_Ss_Rsp_Set_Call_Forward_t;

typedef struct {
    RIL_SIM_ID SimId;
    int *mode;
    RIL_Errno result;
} RIL_Modemadp_Ss_Rsp_Query_Call_Waiting_t;

typedef struct {
    RIL_SIM_ID SimId;
    RIL_Errno result;
} RIL_Modemadp_Ss_Rsp_Set_Call_Waiting_t;

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /*SETTING_CALL_H*/
